/*
 * @Descripttion : 通用函数
 * @Author       : QianFox Team
 * @Date         : 2022-02-28 17:02:02
 * @LastEditors  : QianFox Team
 * @LastEditTime : 2022-05-31 16:24:44
 */

/**
 * @description: 节流函数
 * @param {*} handler      目标函数
 * @param {*} wait         延迟执行毫秒数
 * @return {*}
 * @Date: 2022-02-28 17:03:06
 */
function _throttle(handler, wait) {
    var timer = null;
    return function (e) {
        var _self = this,
            _args = arguments;
        if (!timer) {
            handler.apply(_self, _args);
            timer = setTimeout(function () {
                clearTimeout(timer);
                timer = null;
            }, wait);
        }
    };
}

/**
 * @description: 当前日期时间
 * @param {*}
 * @return {*}
 * @Date: 2022-03-03 22:07:14
 */
function _nowDatetime() {
    let nowDate = new Date(),
        // 获取当前年
        year = nowDate.getFullYear(),
        // 获取当前月
        month = nowDate.getMonth() + 1,
        // 获取当前是几号
        date = nowDate.getDate(),
        // 获取当前小时
        hours = nowDate.getHours(),
        // 获取当前分钟
        minutes = nowDate.getMinutes(),
        // 获取当前秒钟
        seconds = nowDate.getSeconds();

    return { year, month, date, hours, minutes, seconds };
}

/**
 * @description: 判断类型
 * @param {*} obj
 * @return {*} object、array、string、number...
 * @Date: 2022-03-06 22:13:56
 */
function _typeOf(obj) {
    let res = Object.prototype.toString.call(obj).split(' ')[1];
    res = res.substring(0, res.length - 1).toLowerCase();
    return res;
}

/**
 * @description: 判断是否是正整数
 * @param {*} val
 * @return {*}
 * @Date: 2022-03-10 16:23:44
 */
function _isIntNum(val) {
    var regPos = /^[0-9]*[1-9][0-9]*$/;
    if (regPos.test(val)) {
        return true;
    } else {
        return false;
    }
}

/**
 * @description: 生成随机整数
 * @param {*} max
 * @param {*} min
 * @return {*}
 * @Date: 2022-03-09 09:03:19
 */
function _randomInt(max, min) {
    return parseInt(Math.random() * (max - min + 1) + min);
}

export { _throttle, _nowDatetime, _typeOf, _isIntNum, _randomInt };
